In the early stages of the computer industry, computer application development generally comprised developers coding the applications in text editors. These applications would, thereafter, be compiled or run in a separate, language-specific compiler or translator to produce the computer-executable code. As the computer industry has advanced, application development environments have been integrated into the language platforms along with other features and functions that make the application development process much easier. Modern application development environments include features that assist the developer in coding applications, such as a visual differentiation between standard code terms, built-in debuggers or syntax checkers, compilers, code hinting, and the like. Thus, software developers may completely develop and debug applications using these application development environments.
One of the reasons that the computer industry has grown as quickly and extensively as it has is the increase in the graphical interface with the public. Computer applications have become increasingly more visually and graphically oriented. Commensurate with this graphical increase, application development environments have also advanced to include visual or graphical editing. Application development environments with design view editing generally present the graphical results of an application to a developer and allows the developer to edit and create the application by graphically manipulating the visual objects displayed in the design view interface. Application development environments, such as MACROMEDIA INC.'s DREAMWEAVER™, FLEX BUILDER™, BORLAND SOFTWARE CORPORATION's DELPHI™, JBUILDER™, and the like, offer developers a visual editing mode as well as a code editing mode. These application development environments offer fully-operable visual representations of the various components, objects, and parts that make up a software application that the developer may set and manipulate in creating the application.
The graphical editing modes of the application development environments implement a complex relationship between graphical rendering and logic execution. For example, a scrollbar component on a design view stage is graphically rendered within the application development environment, but also uses logic to control the display screen of the application and includes properties that are editable by the developer which affects the appearance of the scrollbar in the application. This interrelationship has typically been implemented using a layered approach.
Several layers operate in the running application development environment. In existing application development environments, such as DELPHI™, when a component is placed onto the graphical development interface, the component itself is actually the underlying code for the component being run and displayed on a first layer. A separate mask layer is placed on top of the component. The user or developer interactions with the component are actually interactions captured by this mask layer. The mask layer includes the edit interface items, such as the sizing handles, selection indicators, and the like. As the user interacts with the components, the interactions are captured by the mask layer and logic within the application development environment is operated to determine whether those actions are directed to the component, in which case the actions are passed to the component for operation, or whether those actions are directed to editing the component, in which case the actions are passed to the application development environment for changing the display or operation of the component in the underlying layer.
This layered approach is useful because it allows for a more accurate representation of the actual component as it will be rendered and operated by the finished software application. If the edit interface objects were rendered directly onto the components in the graphical editing stage, the shape and possibly even the function of the component would be different than in the final application, and the developer may not get an accurate view of how the final application will both look and operate.
Modern software applications routinely use presentation objects to provide information and functionality to the application user. Presentation objects may be items, such as windows, boxes, and the like. More complex presentation objects, such as accordion interfaces, tabbed navigators, and the like, provide the ability to present a large amount of data or functionality in a well-organized fashion. These stacked presentation object, therefore, create a z-axis space in modern applications. However, in many applications, the information or logic that is present or available in the z-space of these stacked containers, is only calculated at runtime. In creating such stacked navigators, a developer will typically execute a number of steps to add a new page, associate the page with the navigator, and then develop the content of that new page. Thus, building such stacked objects typically costs considerable development time.